#ifndef _TABLE_H
#define	_TABLE_H

#include "Foundation.h"
#include "Hand.h"



class Table
{
public:

    /**
     * Construtor
     */
    Table();

    /**
     * Destrutor
     */
    ~Table();
    
private:

    /**
     * Fundações single, inicializadas com As recebem cartas de 1 em 1.
     * Fundações double, inicializadas com 2 recebem cartas de 2 em 2.
     * Fundações triple, inicializadas com 3 recebem cartas de 3 em 3.
     * Fundações quadruple, inicializadas com 4 recebem cartas de 4 em 4.
     */
    Foundation *_Single,
               *_Double,
               *_Triple,
               *_Quadruple;

    /**
     * Deck com as cartas na mao do jogador.
     */
    Hand* _hand;

    /**
     * Pilhas reservas.
     */
    Deck *_tableau_1,
         *_tableau_2,
         *_tableau_3,
         *_tableau_4;

    /**
     * Carta corrente.
     */
    Card* _card;

    /**
     * Prepara as cartas para o jogo
     */
    void Initialize();
};

#endif	/* _TABLE_H */

